Locations 1.10 for Psion Series 5

I have been working on this for a while, and decided to release this
new look update. It's more an alpha than beta version, for there are
still some peculiarities which I have not yet decided how to deal with.
It is also possible to crash the application - entering certain data
will cause a divide-by-zero error! In a program with a lot of maths
this is always a possibility. I have used some code which avoids this
possibility by using more convoluted routines, but I have not yet
decided how to avoid this error on other parts of the application.
However you are unlikely to find such an error if you feed in sensible
data!

What's it all about?

Locations is a simple calculator which converts certain types of map
references, and calculates distances and bearings. It is most useful
to those in the United Kingdom, but may be of interest to others too.

Basically Locations allows you to enter data in the following forms:

UK Ordnance Survey grid references, either like: SU1234567890  or
as easting and northing:

Easting:  412345
Northing: 167890

Locations understands both the British and Irish grids, the latter can
be entered with a single letter like J1234567890, or specifying Irish
when entering easting and northing.

These can be entered as 1 metre references, as above, or 10, or 100 metre
NGR's like SU123456. In this case, Locations pads out the entry to make
it into the 1 metre form, like SU1230045600. You are allowed spaces in
the entry, like SU 123 456.

You can also enter latitude and longitude based on the Ordnance Survey
OSGB36 (Airy) spheroid. This model applies only to Great Britain. A more
recent form of this spheroid, "modified Airy" is used for Ireland. Thus
if you enter a NGR like J1234567890 this will be converted to the newer
model.

Locations also allows entry of latitude and longitude based on the WGS84
ellipsoid. This is the model used by GPS systems, and is used world-wide.
If you enter a WGS84 location within the British Isles, it will convert
it to the OSGB model, which will show a difference of a few seconds of
arc. This conversion will not take place if the data entered relates to
a point outside the British Isles, where OSGB36 should not apply.

UTM (Universal Transverse Mercator) references may also be entered. These
consist of easting, northing, and map zone. Each map zone is 6 degrees of
arc wide, making a total of 60 zones. UTM does not apply within 10 degrees
of either pole, although Locations may display such figures.

Finally an IARU (International Amateur Radio Union) locator may be entered.
This looks like:  IO91CJ
Although IARU locators may have more than 6 characters, this application
will only accept and display the 6 most commonly used. The results from
a locator are based on the centre of the area to which it applies.

You may enter data in any of these forms, and the corresponding positions
for each other mapping model are calculated and displayed (where valid).

Distances and bearings

You may set displayed data to be a reference point (Ctrl-R), and future
calculations will then show the distance and course bearing from this
reference point to the current displayed position. Two types of route
are calculated:

Great Circle:  This is the shortest possible path trom A to B.
Rhumb line:    This is a course of constant bearing, and so usually longer.


Installation.

The archive contains four files:

Locations.txt  this file.
Locations.sis  the EPOC install file.
Locations.app  the app file.
Locations.aif  the aif file.

If you have EPOC Install on your PC, connect your PC to the Psion using
the serial lead, and double click on Locations.sis

OR

Make a new folder on your Psion, called C:\System\Apps\Locations
and copy both the aif and app file to this folder.

The Locators icon will then appear in the Extras bar.



Using Locations.

It is simplicity itself! You can select the type of location you wish to
enter your position, in two ways:

Using the Up and Dowm cursor keys, then highlighting the the entry you
wish to make, press Enter.

You can tap, say, "Locator", which will highlight it, or double-tap it
to open the entry dialog.

To enter a location as a reference point for course and distance
calculations:

Enter the location in the usual way (as above),
Press Control-R, or,
Press menu, and select this option from the drop-down menu.

You can change this reference by pressing Control-R again, and you can 
clear the reference with Control-C. Once again you can use the menu 
instead.

To quit the application, use Control-E as normal.



How accurate are the results?

It is quite difficult to define this. Locations allows UK OS NGR's to
10 figures, which is 1 metre precision. In fact the calculations have 
been simplified and should be well within 10 metres. I have checked
the OSGB36 <--> OS NGR conversions against a commercial program, and
found a fairly close correlation, around one or two metres.

While WGS84 co-ordinates have an accuracy of 1 to 2 metres, reality must
prevail. Normal civil GPS tells deliberate lies - you can be perhaps 30 
to 100 metres from the position on the GPS display. The position of our
land is on the move, coastlines move with the tides, and paper maps are
only two-dimensional.

I have yet to discover any maps in the UK marked with UTM. I have checked
a few positions against a calculator on a government web site in Canada,
the agreement was quite close. There are other calculators on the web,
some of which give results which agree with no others!

At present Locations does not give UK OS NGR's for the Islands of Jersey,
Guernsey, Alderney, Sark, etc. While I have an algorithm which calculates
these, I have no means of checking accuracy at the moment.

The OSGB36 <--> WGS84 conversion should be quite accurate. However the
OS mapping for Ireland does not use the same spheroid as England, Wales
and Scotland. However, I have assumed they are the same in the conversion
to and from WGS84 - the error should be quite small.

Calculating from one co-ordinate to another, and then back again, will
not necessarily give the same figure yiu started with! If you calculate
a locator from an NGR, and then back again to the NGR, you will get a
different result! This is because locators cover a large area of land,
not a spot position, and the centre point of that area is used for
conversions. In other cases the difference is quite small, try it and see.

Some conversions may give invalid results, like a longitude of over 180 
degrees. If you find such errors, please let me know the figures you used.
UTM co-ordinates become crazy near the poles, and should apply only to
areas more than 10 degrees from either pole. Rhumb line courses from near 
the poles can result in a spiral around the pole. Great Circle measurements
are more appropriate here!

If you really need very accurate co-ordinate conversions, you should not
rely on Locations. If you are doing some serious work, or there is a safety
aspect involved, bear in mind that this app was written by a programmer
who doesn't really understand what he is doing! At the least, check my app
against a known good source of information.

So I do not guarantee that this application is suitable for its purpose!

Bug reports and feedback to:

Roger Muggleton
email: hzk@cix.co.uk
www:   http://www.cix.co.uk/~hzk/


